# Makefilet
Reusable Makefile components for everyday use.

`makefilet` provides a set of [Make](https://www.gnu.org/software/make/) targets for common development tasks. It simplifies your life and the life of your co-developers by letting you focus on your language and your project instead of clumsily writing `Makefile` snippets.

Most features are working out of the box. Some features require a configuration file (e.g. for [tox](https://pypi.python.org/pypi/tox)) or a variable in your `Makefile`.

In a perfect world, the `Makefile` of your project is reduced to just a single line that is responsible for including `makefilet`. The latter is providing all the magic for you. Discover it via `make help`.

See the [reference](REFERENCE.md) for a full list of all available targets and variables.


## Features
Currently supported tasks include:

* python style checks ([flake8](https://pypi.python.org/pypi/flake8))
* python tests ([tox](https://pypi.python.org/pypi/tox))
* python reports ([coverage](https://pypi.python.org/pypi/coverage))
* python distribution ([pypi](https://pypi.python.org/))
* deb packaging ([dh_make](manpages.debian.org/dh_make), [dpkg-buildpackage](https://www.debian.org/doc/manuals/maint-guide/build.html), [dput](https://www.debian.org/doc/manuals/maint-guide/upload.html), [lintian](https://lintian.debian.org/))
* deb packaging of pypi dependencies ([pypi2deb](https://github.com/p1otr/pypi2deb))
* shell style checks ([shellcheck](https://github.com/koalaman/shellcheck))
* release preparations ([bumpversion](https://pypi.python.org/pypi/bumpversion))


## Integrate *makefilet* into your project
Somehow you need to make `makefilet` available for yourself and your co-developers within your project repository.

Probably the following lines are everything you need:

```shell
wget https://notabug.org/sumpfralle/makefilet/raw/main/makefilet-download-ondemand.mk
[ -s Makefile ] || echo >>Makefile
sed -i 1i'include makefilet-download-ondemand.mk' Makefile
```

See the [integration instructions](INTEGRATION.md) for more details and a few alternative approaches.


## Start using *makefilet*'s features
Take a look at the list of new available targets provided by *makefilet*:

```shell
make help
```

Take a look at the [usage instructions](USAGE.md) for more details.


## Frequently asked questions

See [FAQ](FAQ.md).


## Contribute
Please take a look at the [contribution hints](CONTRIBUTING.md).
